/**
 * Set 和 数组
    1.set -> 数组
        1.Array.from();
        2.遍历set然后push
        3.扩展运算符

    2.数组 -> set
        1.new Set(arr);
    
Map 和 对象 和 string
    1.map -> 对象 -> String
        1.forEach遍历Map -> 对象 -> JSON.stringify
    2.String -> 对象 -> map
        1.JSON.parse -> 对象 -> for...in 遍历对象 -> Map.add()
 */

// Set 和数组之间
let set = new Set();
set.add(1).add(2).add(3).add(2);

//1.Array.from();
var arr = Array.from(set);
console.log(arr); // [ 1, 2, 3 ]

//2.遍历set 然后push
var arr = [];
set.forEach(i => arr.push(i));
console.log(arr);

//3.扩展运算符
var arr = [...set];
console.log(arr);

//map,对象和字符串之间
let map = new Map();
map.set('name', 'jack').set('age', 22).set('tel', 151);

//1.map -> 对象 -> String
var obj = {};
map.forEach((v, k) => obj[k] = v);
console.log(obj);

var str = JSON.stringify(obj);
console.log(str);

// 2.String -> 对象 -> map 
var obj1 = JSON.parse(str);
var map1 = new Map();

for (const i in obj1) {
    map1.set(i, obj1[i]);
}

console.log(map1);